/**
 *  组件管理 api
 *  @module api/site
 *  @author coder
 */

// API_HOST
import { API_HOST } from '@/config';

// axios
import axios from '@u/axios';

/**
 * 新增组件
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const addModule = (data) =>
	axios({
		method: 'post',
		data: data,
		url: API_HOST + '/module/info/add'
	});

/**
 * 更新组件
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const editModule = (data) =>
	axios({
		method: 'put',
		data: data,
		url: API_HOST + '/module/info/edit'
	});

/**
 * 删除组件
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const removeModule = (data) =>
	axios({
		method: 'delete',
		data: data,
		url: API_HOST + '/module/info/remove'
	});

/**
 * 获取组件分页列表
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const pageModule = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/module/info/page'
	});

/**
 * 获取组件单条信息详情
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const infoModule = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/module/info/info'
	});

/**
 * 根据组件id获取所有文件下载地址
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const fileInfoModule = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/module/info/file-info'
	});

/**
 * 文件上传
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const uploadData = (data) =>
	axios({
		method: 'post',
		data: data,
		url: API_HOST + '/rdfile/data/upload',
		headers: {
			'Content-Type': 'multipart/form-data'
		}
	});

/**
 * 所有可用组件信息
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const moduleList = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/website/module/version'
	});
/**
 * 根据用户角色查询关联的组件
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const roleModuleList = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/role/module/version'
	});

/**
 * 所有可用组件信息-版本
 * @param {object} [data] 发送键值对数据
 * @returns {promise}
 */
export const moduleVersionList = (data) =>
	axios({
		method: 'get',
		data: data,
		url: API_HOST + '/module/version/list'
	});
